﻿//
// DotNetNuke - http://www.dotnetnuke.com
// Copyright (c) 2002-2010
// by DotNetNuke Corporation
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
// documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
// to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions 
// of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
//
using DotNetNuke.Entities.Content;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Host;
using DotNetNuke.Common.Utilities;
using DotNetNuke.Common;

namespace DotNetNuke.UI.Skins.Controls
{

    partial class Tags : UI.Skins.SkinObjectBase
    {
		private string _AddImageUrl = "~/images/add.gif";
        private bool _AllowTagging = true;
		private string _CancelImageUrl = "~/images/lt.gif";
        private string _CssClass;
        private string _ObjectType = "Page";
		private string _RepeatDirection = "Horizontal";
        private string _SaveImageUrl = "~/images/save.gif";
        private string _Separator = ",&nbsp;";
        private bool _ShowCategories = true;
        private bool _ShowTags = true;

        const string MyFileName = "Tags.ascx";

		#region "Public Members"

		public string AddImageUrl
		{
			get { return _AddImageUrl; }
			set { _AddImageUrl = value; }
		}
		public bool AllowTagging
		{
			get { return _AllowTagging; }
			set { _AllowTagging = value; }
		}
		public string CancelImageUrl
		{
			get { return _CancelImageUrl; }
			set { _CancelImageUrl = value; }
		}

		public string CssClass
        {
            get { return _CssClass; }
            set { _CssClass = value; }
        }

        public string ObjectType
        {
            get { return _ObjectType; }
            set { _ObjectType = value; }
        }

		public string RepeatDirection
		{
			get { return _RepeatDirection; }
			set { _RepeatDirection = value; }
		}
		public string SaveImageUrl
		{
			get { return _SaveImageUrl; }
			set { _SaveImageUrl = value; }
		}

		public string Separator
		{
			get { return _Separator; }
			set { _Separator = value; }
		}

		public bool ShowCategories
		{
			get { return _ShowCategories; }
			set { _ShowCategories = value; }
		}
		public bool ShowTags
		{
			get { return _ShowTags; }
			set { _ShowTags = value; }
		}

        #endregion

        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);

			if (ObjectType == "Page")
			{
				tagsControl.ContentItem = PortalSettings.ActiveTab;
			}
			else
			{
				tagsControl.ContentItem = this.ModuleControl.ModuleContext.Configuration;
			}

			string resultsUrl = Null.NullString;
			ModuleController objModules = new ModuleController();
			int searchTabId = 0;
			ModuleInfo SearchModule = objModules.GetModuleByDefinition(PortalSettings.PortalId, "Search Results");
			if (SearchModule == null)
			{
				return;
			}
			else
			{
				searchTabId = SearchModule.TabID;
			}

			tagsControl.AddImageUrl = AddImageUrl;
			tagsControl.CancelImageUrl = CancelImageUrl;
			tagsControl.SaveImageUrl = SaveImageUrl;

			tagsControl.CssClass = CssClass;

			tagsControl.AllowTagging = AllowTagging && Request.IsAuthenticated;
			tagsControl.NavigateUrlFormatString = Globals.NavigateURL(searchTabId, "", "Tag={0}");
			tagsControl.RepeatDirection = RepeatDirection;
			tagsControl.Separator = Separator;
			tagsControl.ShowCategories = ShowCategories;
			tagsControl.ShowTags = ShowTags;
        }

    }
}

